#pragma once

#include "Serializable.h"
#include "Classification.h"
#include "Vectors.h"
#include "Utilities.h"

struct LeagueItemHistory
{
	LeagueItemHistory(const TeamScoreCollection i_result = TeamScoreCollection(),
		              const size_t i_year = 0)
	{
		m_result = i_result;
		m_year = i_year;
	}

	void Serialize(ZStream& o_stream) const;
	void Deserialize(ZStream& i_stream);

	size_t m_year;
	TeamScoreCollection m_result;
};

class LeagueHistory : public Serializable
{
public:
	LeagueHistory();

	void AddLeagueItemHistory(const LeagueItemHistory& i_item);
	const STL::vector<LeagueItemHistory>& GetItems() const;

	virtual	ZStream& Serialize(ZStream& o_stream) const;
	virtual ZStream& Deserialize(ZStream& i_stream);

private:
	STL::vector<LeagueItemHistory> m_items;
};

#include "LeagueHistory.inl"
